#include <Arduino.h>
#include "Wire.h"          // 引入Wire库，用于I2C通信
#include <MPU6050_light.h> // 引入MPU6050库，用于与PU6050传感器通信

// put function declarations here:
MPU6050 mpu(Wire);       // 创建MPU6050对象，使用Wire对象进行通信
unsigned long timer = 0; // 用于计时的变量

void setup()
{
  // put your setup code here, to run once:
  Serial.begin(115200); // 初始化串口通信，波特率为115200
  Wire.begin();   // 初始化I2C总线，SDA引脚连接A4,SCL引脚连接A5

  byte status = mpu.begin(); // 启动MPU6050传感器并获取状态
  Serial.print(F("MPU6050 status: "));
  Serial.println(status);
  while (status != 0)
  {
    /* code */
    // 如果无法连接到MPU6050传感器，停止一切
  }

  Serial.println(F("Calculating offsets, do not move MPU6050"));
  delay(1000);
  mpu.calcAccOffsets(); // 计算陀螺仪和加速度计的偏移量
  Serial.println("Done!\n");
}

void loop()
{
  // put your main code here, to run repeatedly:
  mpu.update(); // 更新MPU6050传感器的数据

  if ((millis() - timer) > 10)
  {
    // 每10ms输出一次数据
    Serial.print("\nX : ");
    Serial.print(mpu.getAngleX()); // 输出x轴的倾斜角度
    Serial.print("\tY : ");
    Serial.print(mpu.getAngleY()); // 输出y轴的倾斜角度
    Serial.print("\tZ : ");
    Serial.print(mpu.getAngleZ()); // 输出z轴的旋转角度
    timer = millis();
  }
}

// put function definitions here: